M1でBig SurなMacBook Airを疑似解像度1920×1200で使う設定

M1でBig SurなMacBook Airを疑似解像度1920×1200で使う設定

Apple M1チップを搭載するMacBook Airに1920x1200の疑似解像度を設定する手順をまとめてみました。macOS Big Surとなったこともありますが、M1チップの搭載により設定箇所などが大きく変わっているようです。
Clock Icon2021.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。先日、MacBook Air (M1, 2020)を購入しました。個人的に初めてのApple M1チップなMac、そしてBig Sur環境になります。セットアップをしていく中、いつも行っている13インチディスプレイの疑似解像度を1920x1200に変更する設定で、これまでと異なる点が多くあり調査や設定に時間を取られました。結果的にはいつもどおりの1920x1200の疑似解像度の設定ができたのですが、設定内容についてつまずいたポイントを中心に備忘録としてまとめておこうと思います。なお、macOS Mojaveあたりまでの手順については以下を参照ください。

上記のエントリと同じく、本エントリで紹介する方法はAppleより公式に公開されているものではありません。設定するマシン以外の環境から設定ファイルをコピーしてなんとか動かすというトリッキー?なことも今回やってみました。他の環境での動作の保証などは一切できません。実際に設定する方は 必ず自己責任で お願いいたします。

13インチMacBookに疑似解像度1920x1200を設定する基本的な手順

まずは13インチのMacBook (Pro/Air)に疑似解像度1920x1200を設定する基本的な手順について確認しておきます。

「システム環境設定 > ディスプレイ > 内蔵Retinaディスプレイ」と進んで解像度を変更しますが、通常であれば設定できる最大の解像度は1680x1050までとなります。(以下はデフォルト設定の1440x900の状態ですが、一番右側の「スペースを拡大」にマウスカーソルをあわせた状態です。設定できる最大の疑似解像度が1680x1050であることがわかります。)

ここに疑似解像度1920x1200を追加するにはシステムファイルの編集が必要です。概要としては、以下の手順となります。

  1. DisplayVendorIDと、DisplayProductIDを確認
  2. /System/Library配下のシステムファイルに設定を追記
    • ファイルは/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-XXXX/DisplayProductID-XXXX
      • DisplayVendorID、DisplayProductIDはそれぞれ、1.で確認したもの
    • scale-resolutionsに<data>AAAPAAAACWAAAAAB</data>という要素を追加
  3. 再起動して、システム環境設定から疑似解像度1920x1200を選択

具体的な手順については以下エントリを参照ください。

なお設定の際には、環境によって/System配下に書き込みができないため、上記エントリにあるような一時的なSIPの無効化や、本エントリで紹介する/Libaryへの設定ファイルの書き込みなどが必要です。

M1でBig Surな環境でつまずいたポイントの概要

さて、今回私がApple M1チップでBig Surな環境に上記の設定を行おうとしたところ、まず1.のDisplayVendorIDとDisplayProductIDの確認でつまずきました。従来と同じ方法ではこれらが確認できません。調査の結果、これまでと少し異なるColorSyncユーティリティを使う方法でこれらの値を確認することができました。

続いて2.のシステムファイルへの設定の追記です。/System/Libraryの代わりに/Libaryを使う必要がある、ということは事前の調査でわかっていたのですが、なんと追記する設定ファイル自体がありませんでした。どうするか考えた結果、同じ13インチのディスプレイを持つMacBook Proの設定ファイルをベースに新規にファイルを作成する、という方法を採り、最終的に目的であるApple M1チップでBig SurなMacBook Airに疑似解像度の1920x1200を設定することができました。以下、設定方法の詳細をまとめていきます。

DisplayVendorIDとDisplayProductIDの確認

ioregコマンドでDisplayVendorIDとDisplayProductIDが見つからない

まずつまずいたポイントが、このDisplayVendorIDとDisplayProductIDの確認です。これまではioregというコマンドを実行することで、これらの値が確認できていました。具体的にはioreg -lw0 | grep IODisplayPrefsKeyを実行します。

macOS CatalinaでIntel CPUな環境のMacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)で確認すると以下のようなぐあいです。

% ioreg -lw0 | grep IODisplayPrefsKey
    | |   | |         "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-a03e"

この結果のAppleBacklightDisplay-610-a03eから、DisplayVendorID-610DisplayProductID-a03eということがわかり、これが設定を追記するファイルに該当する、というわけです。

grep IODisplayPrefsKeyの他にも、grep DisplayProductIDgrep DisplayVendorIDとそれぞれでgrepして確認する方法もあります。この場合に確認できる値は10進数のものになるので、別途16進数に変換する必要があります。(1552は0x610、40122は0xa03eとなります。)

 % ioreg -lw0 | grep DisplayVendorID
    | |   | |         "DisplayVendorID" = 1552
 % ioreg -lw0 | grep DisplayProductID
    | |   | |         "DisplayProductID" = 41022

さてこれをM1なMacBook Airで実行してみました。結果は以下のように何も表示されません。ioreg -lw0の実行結果は返ってきているので、grep IODisplayPrefsKeyしたときに該当文字列がなく、結果が空となってしまうようです。

% ioreg -lw0 | grep IODisplayPrefsKey
% ioreg -lw0 | grep DisplayVendorID
% ioreg -lw0 | grep DisplayProductID
%

DisplayVendorIDとDisplayProductIDを確認として他に1つ思いついたのが、/private/var/db/.com.apple.iokit.graphicsというファイルを参照する方法です。以前、Macに外部ディスプレイを接続した際のアンダースキャン解除のためこのファイルを確認したことを思い出しました。

どんなものかは上記エントリを確認いただくとして、これまでのmacOS CatalinaでIntel CPUな環境ではこの方法で以下のような情報が取得できました。こちらもさきほどと同じく、MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)での出力です。AppleBacklightDisplay-610-a03eという情報が取得できるので、ここからDisplayVendorIDとDisplayProductIDがわかる、というぐあいですね。

% cat /private/var/db/.com.apple.iokit.graphics
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-a03e</key>
        <dict>
                <key>startup-timing</key>
                <data>
                AAAAAAAAAIAQcACAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAYAkAAAIAAAAB
                AAAAkGyKDwAAAACQbIoPAAAAAJBsig8AAAAAAAoAAFAAAAAIAAAAIAAAAEAG
                AAAuAAAAIAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
                AAIAAAAAAAAAAQAEAAEAAQAAAAAAAAAAAAAAAAAAAAAA
                </data>
                <key>version</key>
                <integer>2</integer>
        </dict>
<以下割愛>

さて、こちらもM1なMacBook Airで確認してみますが、以下のように設定ファイルがみつかりません。XXというメッセージが現れるので、念のためsudoで実行しても結果は変わりませんでした。

% ls -a /private/var/db | grep apple
ls: DifferentialPrivacy: Operation not permitted
applepay/
com.apple.xpc.launchd/
com.apple.xpc.roleaccountd.staging/
% sudo ls -a /private/var/db | grep apple
applepay
com.apple.xpc.launchd
com.apple.xpc.roleaccountd.staging

この、従来と同じ方法でDisplayVendorIDとDisplayProductIDが見つからない挙動ですが、例えば以下のサイトなどでは、Big Surな環境でこれらの値を確認できているようです。今回私が確認した環境と異なる点としては、M1であるかどうか(以下サイトではM1という記述がない)であるため、おそらくM1なBig Surの環境ではioreg -lw0コマンドなどコマンドラインベースでDisplayVendorIDとDisplayProductIDが確認できなくなっている、と推測しています。

ColorSyncユーティリティから製造元と機種名を確認する

どうにかしてDisplayVendorIDとDisplayProductIDが確認できないかといろいろと調べたところ、GUI画面から確認できる方法があり、M1なMacBook Airでこれを試してみました。コマンドラインからの確認はできないが、GUIならどうだろうという考えです。結果としてこれがうまくいき、DisplayVendorIDとDisplayProductIDに該当する情報を得ることができました。GUIでのDisplayVendorIDとDisplayProductIDの確認は以下のサイトを参考にしました。

「システム環境設定 > ディスプレイ > 内蔵Retinaディスプレイ」と進み、カラーの項目を選択します。内蔵Retinaディスプレイ用のディスプレイプロファイル(カラーLCD)が選択されている状態で「プロファイルを開く」ボタンを押します。

以下のような画面が出てきます。メニューバーの情報などから、「ColorSyncユーティリティ」というアプリケーションで情報を表示しているようです。

画面上段のリストの箇所を下にスクロールすると、「#:17」、「タグ: 'mmod'」という項目が現れるのでこれを選択します。ここに記載のある製造元がDisplayVendorID、機種がDisplayProductIDに該当することとなります。

システムファイルへの追記

どうにかDisplayVendorIDとDisplayProductIDが確認できました。今回の私の環境ではDisplayVenderID-610DisplayProductID-a045となります。つまり、/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045に<data>AAAPAAAACWAAAAAB</data>を追記すれば、疑似解像度1920x1200の設定が追加できそうです。

Big Surでは/System/Libraryディレクトリの代わりに/Libaryを使う

冒頭に紹介したエントリでも少し扱っていましたが、 macOSでは通常の方法では/System配下のディレクトリに書き込みを行うことができません。macOS Mojave (10.14)では一時的にSIPを無効化する必要がありました。macOS Catalina (10.15)ではSIPの無効化に加えて、read-onlyになっている/を書き込み権限付きでmountする必要がありました。

macOS Big Sur (11)ではさらにシステムボリュームに署名が施されているようで、/System配下のディレクトリへの書き込みはより難しくなっているようです。例えば以下のような回避策で/System配下に書き込みができるようですが、FileVaultを無効にしたり、また設定後にSIPを有効にできない、などの問題があります。

このように/Systemディレクトリへの書き込みは難しい状況なのですが、代わりに/Libraryに設定を書き込む、という方法があるようです。今回はこの方法を採ることにしました。具体的には/System/Library配下の代わりに、書き込み権限のある/Library配下にファイルを書き込みます。/Libraryに設定ファイルがあると、/System/Libraryよりも優先して読み込む(/System/Libraryの設定に上書きされる)ようです。

今回でいえば、追記する設定ファイルについて、

  • /System/Library /Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045

の代わりに

  • /Library /Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045

を編集する、となります。この方法は以下などに詳細があります。

通常は/Libaryの該当箇所(今回なら/Library/Displays/Contents/Resources/Overrides/配下)にはディレクトリなどがないので、/System/Libaryから該当のファイルを/Libaryにコピーして(必要であればディレクトリも作成して)書き換えを行います。

追記するもとになる設定ファイルが見つからない

もととなるファイルは/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045で、これを/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045にコピーして、このコピーしたファイルに<data>AAAPAAAACWAAAAAB</data>を追記すれば良さそうです。さっそくもととなるファイル、/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045を確認するのですが、直前のディレクトリ(DisplayVendorID-610)までは存在しても、DisplayProductID-a045のファイルがありません。

% ls /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610 | grep a045
% ls /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610 | grep a04
DisplayProductID-a040
DisplayProductID-a041
DisplayProductID-a042
DisplayProductID-a043
DisplayProductID-a044
DisplayProductID-a044-9d9da0.tiff
DisplayProductID-a044-e1e1df.tiff
DisplayProductID-a04c
DisplayProductID-a04c-c1.tiff
DisplayProductID-a04c-c3.tiff
DisplayProductID-a04c-c4.tiff
DisplayProductID-a04c-c5.tiff
DisplayProductID-a04c-c6.tiff
DisplayProductID-a04c-c7.tiff
DisplayProductID-a04c-c8.tiff
DisplayProductID-a04d

別のマシンの設定ファイルをベースにする

これまで1920x1200解像度の追加では既存の設定ファイルに要素を追加するという方法で行ってきたため、その上書き対象となる設定ファイルが見つからないことに愕然としました。しかし以前、対象は外付けディスプレイですが、外部サイトでこのディスプレイ設定ファイルを作成し、設定ファイルを配置することでデフォルトの設定に上書きを行う、という設定をしてことを思い出しました。

これが内蔵ディスプレイでもできないかな、と考えました。さらにより確実にするため、今回の設定対象となるMacBook Air (M1, 2020)と同じ13インチのディスプレイを持つMacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)で1920x1200解像度を設定したファイルをベースに利用しました。

MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)では、/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a03eというファイルに、<data>AAAPAAAACWAAAAAB</data>の要素を追記しています。具体的には以下のぐあいです。ハイライトした箇所が設定追記箇所です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>DisplayVendorID</key>
        <integer>1552</integer>
        <key>DisplayProductID</key>
        <integer>41022</integer>
	<key>DisplayProductName</key>
	<string>Color LCD</string>
	<key>DisplayBacklight</key>
	<real>500.00</real>				
	<key>DisplayLeakage</key>
	<real>0.333</real>				
	<key>DisplayLowestLevel</key>
	<real>1</real>
	<key>DisplayLowestMeasured</key>
	<real>0.4323</real>
	<key>DisplayDarkReflection</key>
	<real>1.10</real>
	<key>DisplayBrightReflection</key>
	<real>505.00</real>
	<key>IOGFlags</key>
	<integer>4</integer>				
	<key>scale-resolutions</key>
	<array>
		<data>AAANIAAACDQA</data>		
		<data>AAALQAAABwgA</data>		
		<data>AAAKAAAABkAA</data>		
		<data>AAAIAAAABQAA</data>		
		<data>AAAKAAAABkAAAAABACAAAA==</data>	
		<data>AAAKAAAABaAAAAABACAAAA==</data>	
		<data>AAAHgAAABLAAAAABACAAAA==</data>	
		<data>AAAHgAAABDgAAAABACAAAA==</data>	
		<data>AAAFAAAAAtAAAAABACAAAA==</data>	
		<data>AAAGcgAABBoAAAAB</data>		
		<data>AAAFoAAAA4QAAAAB</data>		
		<data>AAAFAAAAAyAAAAAB</data>		
		<data>AAAEgAAAAtAAAAAB</data>		
		<data>AAAEAAAAAwAAAAAB</data>		
		<data>AAADSAAAAg0AAAAB</data>		
		<data>AAADIAAAAlgAAAAB</data>		
		<data>AAACgAAAAeAAAAAB</data>		
		<data>AAANIAAACDQAAAAJAKAAAA==</data>	
		<data>AAALQAAABwgAAAAJAKAAAA==</data>	
		<data>AAAKAAAABkAAAAAJAKAAAA==</data>	
		<data>AAAIAAAABQAAAAAJAKAAAA==</data>	
		<data>AAAKAAAABaAAAAAJAKAAAA==</data>	
		<data>AAAGcgAABBoAAAAJAKAAAA==</data>	
		<data>AAAHgAAABLAAAAAJAKAAAA==</data>	
		<data>AAAHgAAABDgAAAAJACAAAA==</data>	
		<data>AAAFAAAAAtAAAAAJACAAAA==</data>	
        <data>AAAPAAAACWAAAAAB</data>
	</array>
	<key>target-default-ppmm</key>
	<real>10.0699301</real>
</dict>
</plist>

このファイルをコピーして、DisplayProductID-a045にリネームします。そしてファイル内のDisplayVendorID、DisplayProductIDを書き換えます。DisplayVenderID-610、DisplayProductID-a045は16進数の値ですが、設定ファイル中には10進数で記載する必要があるので変換します。(ここら辺の仕様などはこちらのサイトを参照するとわかるかと思います。)その他の項目の多くは詳細が不明だったため、思い切ってDisplayProductnameとscale-resolutionsの項目以外は削除してしまいました。最終的に以下のようになります。ハイライト箇所のDisplayVendorID、DisplayProductIDは書き換えを行ったもの、<data>要素は1920x1200の設定箇所になります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>DisplayVendorID</key>
        <integer>1552</integer>
        <key>DisplayProductID</key>
        <integer>41029</integer>
	<key>DisplayProductName</key>
	<string>Color LCD</string>
	<key>scale-resolutions</key>
	<array>
		<data>AAANIAAACDQA</data>		
		<data>AAALQAAABwgA</data>		
		<data>AAAKAAAABkAA</data>		
		<data>AAAIAAAABQAA</data>		
		<data>AAAKAAAABkAAAAABACAAAA==</data>	
		<data>AAAKAAAABaAAAAABACAAAA==</data>	
		<data>AAAHgAAABLAAAAABACAAAA==</data>	
		<data>AAAHgAAABDgAAAABACAAAA==</data>	
		<data>AAAFAAAAAtAAAAABACAAAA==</data>	
		<data>AAAGcgAABBoAAAAB</data>		
		<data>AAAFoAAAA4QAAAAB</data>		
		<data>AAAFAAAAAyAAAAAB</data>		
		<data>AAAEgAAAAtAAAAAB</data>		
		<data>AAAEAAAAAwAAAAAB</data>		
		<data>AAADSAAAAg0AAAAB</data>		
		<data>AAADIAAAAlgAAAAB</data>		
		<data>AAACgAAAAeAAAAAB</data>		
		<data>AAANIAAACDQAAAAJAKAAAA==</data>	
		<data>AAALQAAABwgAAAAJAKAAAA==</data>	
		<data>AAAKAAAABkAAAAAJAKAAAA==</data>	
		<data>AAAIAAAABQAAAAAJAKAAAA==</data>	
		<data>AAAKAAAABaAAAAAJAKAAAA==</data>	
		<data>AAAGcgAABBoAAAAJAKAAAA==</data>	
		<data>AAAHgAAABLAAAAAJAKAAAA==</data>	
		<data>AAAHgAAABDgAAAAJACAAAA==</data>	
		<data>AAAFAAAAAtAAAAAJACAAAA==</data>	
        <data>AAAPAAAACWAAAAAB</data>
	</array>
</dict>
</plist>

このDisplayProductID-a045ファイルを、/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610ディレクトリ配下に配置します。/Libraryディレクトリはすでに存在していましたが、Displays以降は存在していなかったため、mkdir -pでDisplayVendorID-610ディレクトリまで作成し、その配下にファイルをコピーしました。

% cd /Library 
% sudo mkdir -p Displays/Contents/Resources/Overrides/DisplayVendorID-610
% sudo ~/DisplayProductID-a045 Displays/Contents/Resources/Overrides/DisplayVendorID-610/
% ls -l /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045
-rw-r--r--@ 1 user  staff  1429  8 24 00:30 /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a045

ファイルを配置後、いちどOSを再起動します。その後、「システム環境設定 > ディスプレイ > 内蔵Retinaディスプレイ」と進みます。解像度の設定で、一番右側の「スペースを拡大」にマウスカーソルを乗せると疑似解像度の1920x1200が設定できることがわかります。

いざ!実際に1920x1200の設定をしたディスプレイ(のスクリーンショット)がこちらです。1920x1200の疑似解像度に設定できましたね!

まとめ

Apple M1チップを搭載しmacOS Big Surが稼働しているMacBook Airで内蔵ディスプレイの疑似解像度のを1920x1200に設定する方法をまとめてみました。これまでのIntel CPUを搭載したmacOS CatalinaやmacOS Mojaveと比べて、(1) コマンドラインからDisplayVendorIDとDisplayProductIDが取得できないためGUIツールのColorSyncユーティリティで確認する必要がある点、(2) /Systemディレクトリに書き込みが行えないため/Libaryディレクトリに書き込む必要がある点、(3) 設定を追記するベースとなるファイルが/System/Libraryに存在しないため何らかの手段でベースとなるファイルを準備する必要がある点、の3つが大きな違いでしょうか。いずれにせよ、個人的には使い慣れた1920x1200の疑似解像度が設定できて一安心です。どうも横幅が1920ピクセルないとしっくりきません。

なお、今回設定したMacBook Air (M1, 2020)は私物です。会社支給のPCもM1 Macの導入が進められており、いつかPC更新の際には選択できるだろうなぁ、その前にM1環境になれておきたいなぁ、という意図も持ちながら(それを理由にして!?)購入に至ったわけですが、想像以上にこれまでの環境との変更点がありましたね。(私がIntel CPUなMacでBig Sur対応していなかったこともありますが。)とはいえ、M1 Mac自体の環境はとっても快適です。いつも使っているアプリケーションで一部M1に対応していないものもありますが、Rosetta 2のおかげで問題なく動作しています。後述する日本語入力の問題は残りましたが、これはBig Sur全般の問題のようなのでIntel CPUなMacでも考えないとなぁと思っています。そもそもBig Sur自体、macOSとしては永らくぶりのメジャーバージョンの変更ということで、それはいろいろ変わるよなぁと思ったしだいでもあります。

おまけ: /System/Libraryを/Libraryで設定する方法は万能ではない??

無事に疑似解像度1920x1200の設定ができた僕のMacBook Air (M1, 2020)ですが、一つ設定がうまく行かない項目がありました。macOS標準の日本語システムを使用した場合の、スペースを常に半角スペースで入力する設定です。macOS Catalinaまでは以下のような設定でこれが可能でした。

macOS Big Surの場合はどうやら設定ファイルの場所が変わるようです。エントリ本文中でも参照した以下のサイトに情報がありました。(SIPを有効にできないなど制限があるため、この方法自体は個人的に採用できないのですが。)

macOS Catalinaまでと、macOS Big Surでの設定ファイルの場所を比較すると以下となります。(設定ファイルはKeySetting_Windows.plistではなく、KeySetting_Default.plistの想定。)

  • macOS Catalinaまで
    • /System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist
  • macOS Big Sur
    • /System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist

この、設定ファイルの場所が変わるまでは突き止めたのですが、こちらも/System/Libraryディレクトリ配下のファイルとなります。ディスプレイ解像度設定と同じように、/Library配下に代わりに設定ファイルを配置してみましたが、どうやらうまくいきません。

  • /System/Libraryの設定ファイル
    • /System/Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
  • /Libraryに配置した設定ファイル
    • /Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
% ls -l /Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
-rw-r--r--  1 root  wheel  48190  8 23 20:30 /Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
% head -n 40 /Library/PrivateFrameworks/CoreJapaneseEngine.framework/Versions/A/Resources/KeySetting_Default.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>version</key>
        <integer>1</integer>
        <key>keys</key>
        <dict>
                <key>before_typing</key>
                <dict>
            <!--
                        <key>&apos; &apos;</key>
                        <dict>
                                <key>command</key>
                                <string>contextual_space</string>
                        </dict>
                        <key>shift+&apos; &apos;</key>
                        <dict>
                                <key>command</key>
                                <string>contextual_space_reverse</string>
                        </dict>
            -->
            <key>&apos; &apos;</key>
            <dict>
                  <key>command</key>
                  <string>direct_input</string>
                  <key>character</key>
                  <string> </string>
            </dict>
            <key>shift+&apos; &apos;</key>
            <dict>
                  <key>command</key>
                  <string>direct_input</string>
                  <key>character</key>
                  <string> </string>
            </dict>
                        <key>delete:</key>
                        <dict>
                                <key>command</key>
                                <string>none</string>

スペルミスなどもないかと思うのですが、、。/System/Libraryを/Libraryで設定する方法は万能ではなく、設定項目によってはこの方法が使えないのかなぁ、などとと思っています。とはいえ日本語入力時にSpaceキーでの入力が半角スペースになることは個人的には画面解像度と同じぐらい必須です。(個人的には、全角スペースを使う場面はほとんどありませんし、仮に使う場合でもShift+Spaceで対応しています。)こちらはGoogle日本語入力を使うことで対応かなぁと考えています。(1年ぐらい前にmacOS標準の日本語入力システムに切り替えたばっかりで、ライブ変換も便利だったのですが。)

あわせて読みたい

気がついたらMacのディスプレイまわりのブログエントリもこれで4本目になりました。今回無事にM1でBig SurなMacBook Airに疑似解像度の1920x1200を設定できたのは、これらのノウハウがあったからかなと個人的には思っています。

13インチのMacBook Proを疑似解像度1920×1200で使う設定 | DevelopersIO

Macに外部ディスプレイを接続して上下左右にアンダースキャンが発生したときに試してみたいこと | DevelopersIO

MacでFull HDの外部ディスプレイにWQHDまたは4Kの解像度で表示する設定 | DevelopersIO

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.